package censo

import scala.collection.mutable.ArrayBuffer
import Packtrait.CriterioFiltroEmpresa

class Empresa extends CriterioFiltroEmpresa {

  var _nombreEmpresa: String = _
  var _Fuente: Fuente = _
  var _Departamento: Departamento = _
  val _registros: ArrayBuffer[Registro] = null

  def nombre = _nombreEmpresa
  def nombre_=(nuevoNombre: String) = {
    _nombreEmpresa = nuevoNombre
  }
  
  def fuente = _Fuente
  def departamento = _Departamento
  def registro = _registros

  //empresa Solida,todos sus registros, la tasa de ganancia es mayor a 10.
  def laEmpresaEsSolida(unaEmpresa: Empresa): Boolean = {
    !((Datos.registros.filter(r => r.soyRegistroDeEmpresa).
      exists { r: Registro => r.tasaDeGanancia < 10 }))
    //foreach { r: Registro => if (!(r.tasaDeGanancia > 10)) return false }
    //true
  }
  //empresa Sospechosa,si en al menos un registro, la tasa de ganancia es mayor a 85.
  def laEmpresaEsSospechosa(unaEmpresa: Empresa): Boolean = {
    Datos.registros.filter(r => r.soyRegistroDeEmpresa).
      exists { r: Registro => r.tasaDeGanancia > 85 }
    //foreach { r: Registro => if (!(r.tasaDeGanancia > 85)) return false }
    //true
  }

  def this(nombreDeLaEmpresa: String, laFuente: Fuente, departamento: Departamento) = {
    this()
    this._nombreEmpresa = nombreDeLaEmpresa
    this._Fuente = laFuente
    this._Departamento = departamento
  }

  override def condicion(registro: Registro) = true
}